#include <stdio.h>
#include <unistd.h>
#include <signal.h>

int g_val = 0;

//不可重入：如果调用了这个函数，则会对程序的结果产生影响
void sigcallback(int sig)
{
    g_val++;
    printf("sig : [%d]\n", sig);
}

//可重入的，如果不同的执行流执行了这个函数，不会对程序的结果产生影响
void sigcallback1(int sig)
{
    printf("sig : [%d]\n", sig);
}

int main()
{
    signal(2, sigcallback1);

    int count = 100;
    while(count--)
    {
        printf("count : %d\n", count);
        g_val++;
        usleep(100000);
    }
    printf("g_val : %d\n", g_val);
    return 0;
}
